import {QueryPage} from "@/api/common/type.ts";


export type BomMaterialDto = {
    id: number | undefined;
    bomId: number | undefined;
    materialId: number | undefined;
    materialName: string | undefined;
    materialCode: string | undefined;
    quantity: number | undefined;
    unitId: number | undefined;
    unitName: string | undefined;
    specification: string | undefined;
    cost: number | undefined;
    purchasePrice:  number | undefined;
    description: string | undefined;

    brand: number | undefined,  // 品牌
    manufacturer: number | undefined,  // 生产厂家
    materialType: string | undefined,  // 材质
    unitWeight: number | undefined,  // 米重(kg/m)
    unitArea: number | undefined,  // 米面积(m²/m)
    totalWeight: number | undefined,  // 总重(kg/件)
    thickness:number | undefined, // 厚度(mm)
};

export type BomProcessDto = {
    id: number | undefined;
    bomId: number | undefined;
    processId: number | undefined;
    processCode: string | undefined;
    processName: string | undefined;
    cost: number | undefined;
    description: string | undefined;
};

// BOM信息用于新增或修改时提交
export interface BomForm{
    id: number | undefined,
    bomCode: string | undefined,  // bom编码
    bomName: string | undefined,  // bom名称
    unitName:string | undefined, // 单位
    specification: string |  undefined,  // 规格
    brand: string |  undefined,   // 品牌
    manufacturer: string |  undefined,  // 生产厂家
    materialType: string |  undefined,  // 材质
    unitWeight: number | undefined,  // 米重(kg/m)
    unitArea: number | undefined,  // 米面积(m²/m)
    totalWeight:number | undefined,  // 总重(kg/件)
    thickness:number | undefined, // 厚度(mm)
    materialTotalPrices? : number | undefined,  // 花费物料总价
    processTotalPrices? : number | undefined,  // 花费工序总价
    totalPrices? : number | undefined,  // 总价
    description: number | undefined,  // 描述
    isActive: number | undefined,   // 是否启用  0： 启用  1：禁用
    bomMaterialDtoList: BomMaterialDto[];  // bom的物料列表
    bomProcessDtoList: BomProcessDto[];  // bom的工序列表
}

//BOM 分页列表展示字段
export interface Bom{
    id: number | undefined,
    bomCode: string | undefined,  // bom编码
    bomName: string | undefined,  // bom名称
    materialTotalPrices: string | undefined,  // 花费物料总价
    processTotalPrices: string | undefined,  // 花费工序总价
    totalPrices: string | undefined,  // 总价
    description: number | undefined,  // 描述
    isActive: number | undefined,   // 是否启用  0： 启用  1：禁用
}

// 定义物料项接口 用于选择物料列表的弹出框和已选择的物料
export interface MaterialItem {
    id: number // 物料ID
    materialCode: string // 物料编码
    materialName: string // 物料名称
    specification: string // 规格
    unitId: number // 单位ID
    unitName: string // 单位名称
    purchasePrice: number // 物料单价
    quantity?: number // 使用数量
    cost?: number // 单项物料总价 = 数量 * 单价
    description?: string // 描述

    brand: number | undefined,  // 品牌
    manufacturer: number | undefined,  // 生产厂家
    materialType: string | undefined,  // 材质
    unitWeight: number | undefined,  // 米重(kg/m)
    unitArea: number | undefined,  // 米面积(m²/m)
    totalWeight: number | undefined,  // 总重(kg/件)
    thickness:number | undefined, // 厚度(mm)
}

// 定义工序项接口  用于选择工序列表的弹出框和已选择的工序
export interface ProcessItem {
    id: number // 工序ID
    processCode: string // 工序编码
    processName: string // 工序名称
    processId?: number // 工序ID
    cost: number // 工序成本
    description?: string // 描述
}


// 分页查询BOM信息列表请求
export interface BomListParam extends QueryPage{
    bomCode:string | undefined,  // bom编码
    bomName: string | undefined,  // bom名称
    isActive:  number | undefined,   // 是否启用  0： 启用  1：禁用
}
